package cn.com.api.service;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Service;

import cn.com.api.entity.ApiT_member_pay_records;
import cn.com.api.entity.ApiT_shops_pay_records;
import cn.com.api.entity.ApiT_stats;
import cn.com.api.service.base.T_statsServiceBase;
import cn.com.util.*;

/**
 * 
 */
@Service
public interface ApiT_statsService extends T_statsServiceBase {
	
	public List<Map<String,Object>> shopAccount(String name,String balance,String stime,String etime,String discount,String cityid);
	
	public Double cashSum(String shopid);
	
	public Map<String,Object> searByCash(String shopid);
	
	/**
	 * 根据不同查询条件分得配送员统计表
	 * @param conditions
	 * @param pageInfo
	 * @return
	 */
	public List<ApiT_stats> shipperStatList(ApiT_stats conditions,PageInfo pageInfo);
	
	/**
	 * 根据不同查询条件分得配送员业绩表(按月份)
	 * @param conditions
	 * @param pageInfo
	 * @return
	 */
	public List<ApiT_stats> shipperMonthStatList(ApiT_stats conditions,PageInfo pageInfo);

	
	/**
	 * 根据不同查询条件分得配送员帐单(按月份)
	 * @param conditions
	 * @param pageInfo
	 * @return
	 */
	public List<ApiT_stats> shipperMonthBillingList(ApiT_stats conditions,PageInfo pageInfo);
	
	/**
	 * 更新配送员的统计记录的状态和备注
	 * @param stats_id 记录id
	 * @param status 状态 
	 * @param remark 备注
	 * @return
	 */
	public boolean updateShipperMonthBillingStatusAndRemark(int stats_id,Integer status,String remark);

	/**
	 * 结算或者充值
	 * @param stats_id
	 * @param type   1: 充值 ; 2:结算
	 * @param money  应结算的金额
	 * @return
	 */
	public Map<String,String> updateStatStatus(int stats_id,int type,double money);
	
	/**
	 * 得到已审核（待打款的）的统计结算数据
	 * @param conditions
	 * @param pageInfo
	 * @return
	 */
	public List<ApiT_stats> checkedStatsList(ApiT_stats conditions,PageInfo pageInfo);
	
	/**
	 * 根据不同的查询条件分页查询商家每月账单(按月)
	 * @param conditions
	 * @param pageInfo
	 * @return
	 */
	public List<ApiT_stats> shopMonthShippingList(ApiT_stats conditions,PageInfo pageInfo);
	
	/**
	 * 根据不同的查询条件分页查询商家每周账单(按周)
	 * @param conditions
	 * @param pageInfo
	 * @return
	 */
	public List<ApiT_stats> shopWeekShippingList(ApiT_stats conditions,PageInfo pageInfo);
	
	/**
	 * 根据不同的查询条件分页查询分站每日账单(按周)
	 * @param conditions
	 * @param pageInfo
	 * @return
	 */
	public List<ApiT_stats> dayStationStatList(ApiT_stats conditions, PageInfo pageInfo);
	
	/**
	 * 确认打款给配送员
	 * @param stats_id
	 * @return
	 */
	public boolean payToShipper(int stats_id,ApiT_member_pay_records record) ;
	
	public ApiT_stats getStatById(int stats_id);
	
	public ApiT_stats getShopMonthStatById(int stats_id);
	
	public ApiT_stats getShopWeekStatById(int stats_id);
	
	/**
	 * 确认打款给商家（按月）
	 * @param stats_id
	 * @return
	 */
	public Map<String,String> payMonthMonyToShop(int stats_id,ApiT_shops_pay_records payRecord);
	
	/**
	 * 确认打款给商家（按周）
	 * @param stats_id
	 * @return
	 */
	public Map<String,String> payWeekMonyToShop(int stats_id,ApiT_shops_pay_records payRecord);
	
	/**
	 * 得到统计记录
	 * @param stats_id
	 * @return
	 */
	public ApiT_stats getStationStatById(int stats_id);
	
	public Map<String,String> updateStationStatStatus(int stats_id, int type,double money);
}
